草庐IT

jQuery 属性

全部标签

javascript - 使用 jQuery/.data() 避免内存泄漏

我正在使用jQuery动态创建HTML元素,现在需要针对它们存储JavaScript数据。但是,我现在担心内存泄漏,因为我实际上从未对我的对象调用“删除”。我'.append'和'.detach'它们,但从不'.remove'。jQuery的文档似乎建议我应该调用remove来清理它在对象上的足迹——事件、数据等。这在现代浏览器上是否绝对必要,或者对元素的任何引用的消失是否会为我做到这一点?表达我的问题的另一种方式;这个脚本片段会泄漏内存吗?functioncreateElement(){varnewDiv=$("").data("test","testdata").appendTo(

javascript - TypeError : jQuery. easing[this.easing] 不是函数

这个问题在这里已经有了答案:TypeError:p.easing[this.easing]isnotafunction(12个答案)关闭6年前。我需要为我的jQuery链接添加一个效果,但它只适用于最低1.7.1,而我有另一个代码只适用于1.10.2。此代码仅适用于1.10.2$(document).ready(function(){varmenu=document.querySelector('#menu-bar-wrapper');varorigOffsetY=menu.offsetTop;functionscroll(){if($(window).scrollTop()>=ori

javascript - 用jquery比较两个时间变量

这是我的jQuery代码。在这段代码中#StartTime和#EndTime是表单输入标签ID。获取时间格式为00:00AM/PM。varstarttimeval和endtimeval包含获取开始和结束时间的值。我如何比较这两个时间,例如:if(starttimeval$(function(){$('#StartTime').datetimepicker({datepicker:false,format:'g:iA'});$('#EndTime').datetimepicker({datepicker:false,format:'g:iA'});varstarttimeval=$("#

javascript - 选择并删除所有匹配的数据属性

我正在尝试找到一种方法来从页面中删除来自不同类型元素的所有匹配数据属性。我现在循环一个数组,但名称列表太长了,我希望有更好的方法来删除我的自定义数据属性......使用正则表达式模式?//代码vardataArr=['data-myplugin-value','data-myplugin-id',............'data-myplugin-name'];$.each(dataArr,function(i,a){$('['+a+']').removeAttr(a);}); 最佳答案 如果您不介意使用XPath,这是我的解决方

javascript - IE 11 - console.log 显示对象属性未定义

这是一个非常简短的示例。我将下面的代码复制并粘贴到一个文件中,保存并打开它。在Chrome中工作正常,在ie11中失败。控制台上的输出是胡说八道!这是怎么回事?是否偶然发现了一些奇怪的错误?test.b显然不是未定义的,因为它可以通过JSON解析器和直接对象评估访问。此外,切换日志函数中变量的顺序不会改变未定义的test.b。wtfvartest={a:1,b:{c:1}}console.log(test,JSON.stringify(test),test.b);WTFIE 最佳答案 我最近也遇到了这个问题。问题是我正在处理的页面将

javascript - typescript 覆盖构造函数中的扩展属性

我在使用Typescript时遇到问题,我扩展了一个类并从父类(superclass)覆盖了一个属性,但是当我实例化子类时,父类(superclass)属性仍然在构造函数中读取。请看下面的例子:classPerson{publictype:string='GenericPerson';publicconstructor(){console.log(this.type);}}classClownextendsPerson{publictype:string='ScaryClown';}varperson=newPerson(),//'GenericPerson'clown=newClow

javascript - 如果不查询宽度属性,过渡就不起作用

我想通过向js中的div添加一个类来为点击事件上的translateX设置动画。transform和transition属性添加到css文件中。varwidget=document.getElementById('widget');widget.style.display='block';document.getElementById('widget2').clientWidth;//commentthislineoutanditwontworkwidget.className='visible';只有当我在添加类之前查询dom中任何元素的宽度属性时,它才有效。这是一个jsfiddle

javascript - 测试对象是否具有多个属性

我在检查这个对象时遇到问题,我需要做些什么来链接多个.to.have.property语句吗?我相信我只是将上一个.to.have.property的结果返回到下一个。expect(shopify.formatRequestOptions("shop")).to.have.property('url',"https://"+settings.shop+"/admin/shop.json").to.have.property('method',"GET").to.have.deep.property('headers.X-Shopify-Access-Token',settings.ac

javascript:将方法和字符串分配给相同的属性名称

我知道我会得到那些说我根本不应该这样做的人,但我很好奇人们是如何做到的。我知道我已经看到您可以在何处键入属性名称并获取一个值,但随后您将括号添加到末尾并访问一个方法。在视觉上,我是这样说的:fooreturns'bar'foo()performsafunction问题是如何? 最佳答案 这是不可能的,因为对象的属性是如何解析的。这是唯一远距离接近的东西:functionf(){return'Iambeingreturnedfromthefunction.';}f.toString=function(){return'Iamaprop

javascript - 将属性应用于多个对象

在对另一个输入字段进行更改后,我无法找出使用jQuery将更改应用到多个输入字段的最佳方法。如果只有1个广告系列ID,则下面的代码有效。然而,当存在多个事件时,我的代码只是将最后一个实例应用于所有事件。我如何更改此设置以分别应用于每个广告系列ID?目标组织状态从“事件”切换为“暂停”。对于每个事件ID:禁用事件状态下拉菜单。如果事件状态为“已续订”,则保留为“已续订”。如果事件状态为“事件”,请切换为“已暂停”。如果事件状态为“已暂停”,则保留为“已暂停”。组织状态从“暂停”切换为“事件”。对于每个事件ID:启用事件状态下拉菜单。保持状态不变。这是代码(请忽略表格!):varcampa